import Vue from 'vue'
import toast from './toast.vue'

const _toast = Vue.extend(toast)
const instance = new _toast()

// Vue 实例在实例化时没有收到 el 选项，处于“未挂载”状态，没有关联的 DOM 元素。
// 可以使用 vm.$mount() 手动地挂载一个未挂载的实例，生成DOM元素，再添加到body中。
instance.$mount()
document.body.appendChild(instance.$el)

function Toast(msg) {
  instance.show({
    message: msg,
    type: 0
  })
  return instance
}

Toast.success = function (options) {
  options.type = 1
  instance.show(options)
}

Toast.fail = function (options) {
  options.type = 2
  instance.show(options)
}

Toast.loading = function (options) {
  options.type = 3
  if (options.mask !== undefined) options.mask = true
  instance.show(options)
}

Toast.clear = function () {
  instance.clear()
}

export default Toast
